import { history } from '@umijs/max';
import { tokenManager } from '@/services/apiClient';

/**
 * 优雅的登出处理函数
 * 使用路由导航避免页面抖动，并清理用户状态
 */
export const logoutWithNavigation = async (): Promise<void> => {
  try {
    // TODO: 调用后端登出接口
    console.log('用户登出');
  } catch (error) {
    console.error('登出接口调用失败:', error);
  } finally {
    // 清除本地存储的Token
    tokenManager.clearToken();

    // 清除Token记住状态，但保留用户邮箱（如果用户选择了记住我）
    localStorage.removeItem('token_remember');

    // 使用路由导航跳转到登录页，避免页面抖动
    history.push('/user/login');

    // 可选：刷新页面以确保完全清除状态
    // 在某些情况下可能需要，但通常路由导航就足够了
    // setTimeout(() => {
    //   window.location.reload();
    // }, 100);
  }
};
